import request from "@/utils/request";
import httpRequest from "@/utils/requestUtil";
const CONTRACT_BASE_URL = "/business/contractTemplate";

const ContractTempAPI = {
  /** 获取分页数据 */
  getPage(queryParams?: ContractTempPageQuery) {
    return httpRequest.get<PageResult<ContractTempPageVO[]>>(
      `${CONTRACT_BASE_URL}/loadPage`,
      queryParams
    );
  },

  /**
   * 获取表单数据
   *
   * @param id ID
   * @returns 表单数据
   */
  getFormData(id: string) {
    return request<any, ContractTempPageVO>({
      url: `${CONTRACT_BASE_URL}/load/${id}`,
      method: "get",
    });
  },

  /**
   * 创建合同
   * @param data 表单数据
   */
  create(data: ContractTempForm) {
    return request<any, ContractTempPageVO>({
      url: `${CONTRACT_BASE_URL}/add`,
      method: "post",
      data,
    });
  },

  /**
   * 更新合同
   * @param id ID
   * @param data 表单数据
   */
  update(data: ContractTempForm) {
    return request<any, ContractTempPageVO>({
      url: `${CONTRACT_BASE_URL}/update`,
      method: "post",
      data,
    });
  },

  /**
   * 删除合同
   */
  deleteById(id: string) {
    return request({
      url: `${CONTRACT_BASE_URL}/delete/${id}`,
      method: "get",
    });
  },
};

export default ContractTempAPI;

/** 分页查询参数 */
export interface ContractTempPageQuery extends PageQuery {
  /** 搜索关键字 */
}

/** 分页对象 */
export interface ContractTempPageVO {
  /** 合同ID */
  id: string;
  /** 合同名称 */
  name: string;
  /** 合同内容 */
  content?: string;
  /** 创建时间 */
  createTime?: string;
  /** 更新时间 */
  updateTime?: string;
}

/** 基础信息表单 */
export interface ContractTempForm {
  /** 合同ID */
  id?: string;
  /** 合同名称 */
  name: string;
  /** 合同内容 */
  content: string;
}

export const defaultContractTempForm: ContractTempForm = {
  id: undefined,
  name: "",
  content: "",
};
